'''
@Project ：python-study
@File    ：8.10练习3：各国评分数据.py
@IDE     ：PyCharm
@Author  ：SUNLIN
@Date    ：2025/3/12 9:56:06
'''

import pandas as pd
import numpy as np

pd.set_option('display.expand_frame_repr', False)
pd.set_option('display.max_rows', None)
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 100)

data = pd.read_excel('../doc/datasource/C8-8.5-数据采集-clean.xlsx',
                     usecols=['movie_name', 'country', 'language', 'release_date', 'average_score', ])
# 按照所定义顺序排序
data = data[['movie_name', 'country', 'average_score']]

# 获取国家类别数据 8.8 和 8.10练习的整合


# 防止有空值
data['country'] = data['country'].fillna(value='')
data['country'] = data['country'].str.strip(' ')

# 获取去重之后的国家列表
country_list = []
for c in data['country']:
    c_list = c.split(' / ')
    for l in c_list:
        country_list.append(l)
country_list = list(set(country_list))

# 移除一些重复的数据
if '美国/澳大利亚' in country_list:
    country_list.remove('美国/澳大利亚')
if '捷克斯洛伐克/捷克' in country_list:
    country_list.remove('捷克斯洛伐克/捷克')
if '中国大陆' in country_list:
    country_list.remove('中国大陆')
if '中国香港' in country_list:
    country_list.remove('中国香港')
if '中国台湾' in country_list:
    country_list.remove('中国台湾')

x = 5.2
rate_list = []
while x <= 9:
    rate_list.append(x)
    x += 0.1
    x = x.__round__(1)

# for label in country_list:
#     temp = data[data['country'].str.contains(label)]
#     data_rate_tj = pd.DataFrame(np.zeros([len(rate_list), 1]), index=rate_list, columns=['统计'])
#     for r in temp['average_score']:
#         for r1 in rate_list:
#             if (r == r1):
#                 data_rate_tj.loc[r1, '统计'] += 1
#     print("国家：", label)
#     print(data_rate_tj, '\n')

# 整合数据
data_rate_tj = pd.DataFrame(np.zeros([len(rate_list), 1]), index=rate_list, columns=['统计'])

for label in country_list:
    temp = data[data['country'].str.contains(label)]
    # 把新的一列全部都赋值为0
    data_rate_tj[label] = 0.0
    for r in temp['average_score']:
        for r1 in rate_list:
            if (r == r1):
                data_rate_tj.loc[r1, label] += 1
print(data_rate_tj)
